【问题描述】
用指定的连接符合并文本。
【示例5-6】
本例使用的Excel文件的完整路径为“D:/Samples/ch05/06 合并文本/合并学生个人信息.xlsx”。该文件打开后如图5-6所示,要求用”、“作为连接符连接姓名、性别和准考证号,列索引字段为”合并信息“。
图5-6 学生准考证号
- 编写下面的代码:
code.python
import pandas as pd
# 读取 Excel 文件并指定引擎为"openpyxl"
df = pd.read_excel('D:/Samples/ch05/06 合并文本/合并学生个人信息.xlsx', engine='openpyxl', sheet_name=0, header=None)
# 取前3行数据
df = df.head(3)
#用”、“作为连接符连接姓名、性别和准考证号,列索引字段为”合并信息“
df['合并信息'] = df['姓名'].astype(str) + '、' + df['性别'].astype(str) + '、' + df['准考证号'].astype(str)
# 输出带有合并信息列的 DataFrame
print(df)
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出合并后的结果。
code.python
>>> == RESTART: D:/Samples/1.py =
0 姓名 性别 准考证号 合并信息
1 张三 女 202100102 张三、女、202100102
2 李四 男 202100103 李四、男、202100103
3 王五 女 202100104 王五、女、202100104
【知识点扩展】
本例中直接用+实现合并,代码为:
df['合并信息'] = df['姓名'].astype(str) + '、' + df['性别'].astype(str) + '、' + df['准考证号'].astype(str)
可以指定连接符,用join函数进行合并。下面用join函数实现本例。
- 编写下面的代码:
code.python
import pandas as pd
# 设置文件路径和工作表名称
file_path = 'D:/Samples/ch05/06 合并文本/合并学生个人信息.xlsx'
# 读取Excel文件中第一个工作表前三行数据
df = pd.read_excel(file_path, engine='openpyxl', sheet_name=0, nrows=3)
# 用”、“作为连接符,用join函数连接姓名、性别和准考证号,列索引字段为”合并信息“
df['合并信息'] = df[['姓名', '性别', '准考证号']].astype(str).apply(lambda x: '、'.join(x), axis=1)
# 输出结果
print(df)
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出合并后的结果。
也可以用cat函数来实现本例,用法如下面语句所示。
code.python
df['合并信息'] = df['姓名'].str.cat(df[['性别', '准考证号']].astype(str), sep='、')